Quando você pisa no tile, o step in é executado. Quando você sai dele, independente de como, o step out é executado. Logo, mesmo dando teleporte em cima do tile do moveevent o step out será executado.
Underwater Walking e outfit de mergulho
Por Josegvb, 14 de jun. de 2016 em Scripts
9 horas atrás, Josegvb disse:
pq tipo, se vc ta la dentro da agua, vc da tp"saffron, ai vc leva tp pro saffron sem ter pissado no sqm do step out, desse jeito leva tp pra sqms q provavelmente nao ira ter a açao do step out e ai fica com a velocidade da agua
na pokexgame isso tb acontece vc tem que mudar de outfit pra voltar ao normal.
Também dá pra explorar algumas coisas usando o creatureevent onOutfit(cid, old, current).
PS: Para aqueles não familiarizados com este callback, ele é executado quando uma criatura muda de outfit.
info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino

5 minutos atrás, zipter98 disse:Também dá pra explorar algumas coisas usando o creatureevent onOutfit(cid, old, current).
PS: Para aqueles não familiarizados com este callback, ele é executado quando uma criatura muda de outfit.
I have a question.
O step in/step out constante caso haja muitos players no servidor, nao pode causar algum lag?
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Cara, eu tentei fazer com o type water do pokémon, mas por algum motivo não estava dando, nem me lembro o erro que ocorria.
Então eu fiz desse jeito tosco de array, mas funciona.
Eu fiz para um servidor ai há pouco tempo atrás, espero que funcione para você também.
Se você der TP, a roupa sai e a velocidade volta ao normal.
Os pokémon que estão na tabela não tomam slow da água.
local condition = createConditionObject(CONDITION_DROWN)setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, 0)setConditionParam(condition, CONDITION_PARAM_TICKS, -1)setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 2000)local pokesWater = {"Squirtle", "Wartortle", "Blastoise", "Staryu", "Starmie", "Phione", "Manaphy", "Magikarp", "Gyarados", "Horsea", "Seadra", "Kingdra", "Tentacool", "Tentacruel","Goldeen", "Seaking", "Horsea", "Dewgong", "Cloyster", "Seel", "Shellder", "Krabby", "Kingler", "Lapras", "Wailord", "Milotic", "Corsola", "Psyduck", "Golduck", "Chinchou", "Lanturn","Poliwag", "Poliwhirl", "Politoed", "Poliwrath", "Slowpoke", "Slowbro", "Shiny Cloyster", "Piplup", "Prinplup", "Empoleon", "Mudkip", "Marshtomp", "Swampert", "Totodile", "Crocodile","Feraligatr", "Shiny Feraligatr", "Shiny Blastoise", "Shiny Empoleon", "Giant Magikarp", "Shiny Giant Magikarp", "Vaporeon", "Shiny Vaporeon", "Omanyte", "Shiny Omanyte", "Omastar","Shiny Omastar", "Kabuto", "Kabutops", "Shiny Kabutops", "Mantine", "Shiny Mantine", "Shiny Politoed", "Shiny Corsola", "Qwilfish", "Shiny Qwilfish", "Shiny Wartortle", "Shiny Squirtle", "Lotad", "Lombre", "Ludicolo", "Crawdaunt", "Marill", "Azumarill", "Wooper", "Quagsire", "Slowking", "Remoraid", "Octillery","Shiny Krabby", "Shiny Kingler", "Shiny Horsea", "Shiny Seadra", "Shiny Kingdra", "Shiny Tentacool", "Shiny Tentacruel", "Shiny Magikarp", "Shiny Gyarados", "Shiny Slowking","Shiny Wailord", "Shiny Milotic", "Shiny Lapras", "Shiny Golduck", "Shiny Psyduck", "Shiny Starmie", "Shiny Lanturn","Mega Blastoise", "Mega Gyarados", "Mega Slowking", "Mega Swampert"}function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue (cid, 17001) >= 1 then doPlayerSendCancel(cid, "A roupa apropriada para este solo não pode ser equipada enquanto você estiver montado em seu pokémon.") return true end if getPlayerStorageValue (cid, 5700) >= 1 then doPlayerSendCancel (cid, "A roupa apropriada para este solo não pode ser equipada enquanto você estiver montado em sua bike.") return true end local newtype = getPlayerSex(cid) == 0 and 1034 or 1035 doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, 1500) doSetCreatureOutfit (cid, {lookType = newtype}, -1) doAddCondition(cid, condition) elseif isInArray (pokesWater, getCreatureName (cid)) then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getCreatureSpeed(cid) + 700) endreturn trueendfunction onStepOut(cid, item, position, fromPosition) if isPlayer(cid) then if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue (cid, 17001) >= 1 then return true end if getPlayerStorageValue (cid, 5700) >= 1 then return true end doRemoveCondition(cid, CONDITION_OUTFIT) doRemoveCondition(cid, CONDITION_DROWN) doRegainSpeed (cid) else doRegainSpeed (cid) endreturn trueend
XML:
<movevent type="StepIn" itemid="5405-5450" event="script" value="drown.lua"/><movevent type="StepOut" itemid="5405-5450" event="script" value="drown.lua"/>
Editado Agosto 22 por Bodak Reborn
de boa ta funfando sim! agr só falta umas pequenas modificaçoes q acho sao facil e eu nao tendo conhecimento em scripting posso fazer tb seria colocar um if storage, que seria pra q o script funfase só se o cara tiver x storage (a storage q ganha o outfit)
agora outra duvida, os pokemons se mexem de um jeito "saltinhos" pulando kk nao há forma de deixar eles + naturais?

Editado Agosto 23 por Josegvb
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

@Josegvb, aqui os pokémon andam normalmente.
Pode ser a velocidade deles, mude-a aqui:
doChangeSpeed(cid, getCreatureSpeed(cid) + 700)
Não consegui inserir o gif aqui, dá uma olhada ai:
Editado Agosto 23 por Bodak Reborn
info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino

24 minutos atrás, Bodak Reborn disse:@Josegvb, aqui os pokémon andam normalmente.
Pode ser a velocidade deles, mude-a aqui:
doChangeSpeed(cid, getCreatureSpeed(cid) + 700)
Não consegui inserir o gif aqui, dá uma olhada ai:
Cara, tenho uma duvida.
Eu pensei em fazer isso aí, mas tipo, tanto step in e step out não dariam lag caso tivesse mt gente fazendo isso não? ;-;
Tem uns fixes, na vdd frescuras, que dá pra fazer tmb, por exemplo nessas linhas:
doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getCreatureSpeed(cid) + 700)
A speed de todos Pokémons aquáticos vão ficar iguais embaixo d'água. Na minha opinião ficaria meio escroto ehaueaeha.
Ficaria mais "bonito" se pegasse a speed base do Pokémon e somasse com um valor padrão, como 400 ou 300. Aí pelo menos vai haver diferença de speed entre uma Dewgong, por exemplo, e um fodendo Kingdra.
Ou botar tres tables, na lib msm, uma pra cada evolução (primeira, segunda e terceira), aí tu vai adicionando, ex.: squirtle na primeira table, wartortle na segunde e assim vai.
Dá pra fazer vários bang louco com isso, inclusive nesse script setar a speed do Pokémon embaixo d'água por estágio evolutivo ;p
Editado Agosto 23 por Gabriel Netto
36 minutos atrás, Bodak Reborn disse:@Josegvb, aqui os pokémon andam normalmente.
Pode ser a velocidade deles, mude-a aqui:
doChangeSpeed(cid, getCreatureSpeed(cid) + 700)
estranho, poderia me falar a velocidade entao dos teus pokemons?
o meu esta assim:
<monster name="Gyarados" nameDescription="a gyarados" race="water" experience="1100" speed="247" manacost="0">
tentei aumentar mas ficou igual só "dando saltinhos" mais rapidos
doChangeSpeed(cid, getCreatureSpeed(cid) + 3000)

e se eu abaixar a speed fica dando saltinhos + lerdos
doChangeSpeed(cid, getCreatureSpeed(cid) + 350)

estou tentando outros valores porem td fica a msm coisa, se fez alguma modificaçao no item, dat e spr no chao ou algo do tipo?
@Gabriel Netto se tiver como deixar o script + lindo faça aeuaeuae :(
Editado Agosto 23 por Josegvb
info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino

7 minutos atrás, Josegvb disse:
estranho, poderia me falar a velocidade entao dos teus pokemons?
o meu esta assim:
<monster name="Gyarados" nameDescription="a gyarados" race="water" experience="1100" speed="247" manacost="0">
tentei aumentar mas ficou igual só "dando saltinhos" mais rapidos
doChangeSpeed(cid, getCreatureSpeed(cid) + 3000)
e se eu abaixar a speed fica dando saltinhos + lerdos
doChangeSpeed(cid, getCreatureSpeed(cid) + 350)
estou tentando outros valores porem td fica a msm coisa, se fez alguma modificaçao no item, dat e spr no chao ou algo do tipo?
Qual base tu tá usando, e qual cliente?
Acho q isso aí é um problema no client... acontecia antes de por o script? Acontece em outros locais, como na neve?
@Josegvb, vou sair agr, de noite eu boto o script alterado aq, se o amg ali ainda não tiver posto
Editado Agosto 23 por Gabriel Netto
3 horas atrás, Gabriel Netto disse:
Qual base tu tá usando, e qual cliente?
Acho q isso aí é um problema no client... acontecia antes de por o script? Acontece em outros locais, como na neve?
![]()
base DxP
https://i.gyazo.com/d27608d8804b3139b9d9fdf9f6d0fd51.gif
entao gente, fiz o script pra funfar na neve e aconteceu uma coisa
antes do script:

dps do script

ele os bixos ficaram igualzinhos q os bixos da agua "saltinhos"
entao ctz é alguma coisa no script q faz eles ficar assim =x
Editado Agosto 23 por Josegvb
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

@Gabriel Netto eu acabei de ver a burrada dessas duas linhas -.-
doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getCreatureSpeed(cid) + 700)
Não percebi que eu tava somando 0 + 700.. lol
Eu fiz assim pra não ficar escroto, como o teu exemplo de Dewgong e um fodendo Kingdra. Porém aparentemente eu não utilizei meu cérebro.
Realmente, teria que fazer uma tabela na lib com a velocidade dos pokémon.
Sobre o lag, eu realmente não sei. O servidor para qual eu fiz esse script é sempre lagado mesmo, então não tem como eu saber. Nem pensei nisso na verdade...
A velocidade está igual o meu, não sei o que pode estar causando o bug.
Tenta remover essas linhas:
else doRegainSpeed (cid)
do StepOut e vê no que dá. É a única coisa que passa pela minha cabeça...
removi, porem ta a msm coisa ![]()
certeza é o script pois na neve se eu desativar ele ou simplemente colocar
if(not isPlayer(cid)) then
return true
end
os bixos ficam com velocidade normal
e se mexendo normal mas se eu tirar isso os bixos ficam se movendo "gelados"
vou ajudar nessa Pda, a roupa deveria ser ao entragar tal item ao npc vc ganha a storage e tem elas no comando do clique outif.
script pra usar na neve e so ajeitar do jeito de vcs.
if getPlayerStorageValue(cid, 17000) == 1 or getPlayerStorageValue(cid, 17001) == 1 or getPlayerStorageValue(cid, 17001) == 1 or getPlayerStorageValue(cid, 17000) == 1 then
doChangeSpeed(cid, 0)
end
if getCreatureOutfit(cid).lookType == 558 or getCreatureOutfit(cid).lookType == 557 then --- outfit das roupas de neve
doChangeSpeed(cid, 600)
else
doChangeSpeed(cid, 50)
end
end
if ehMonstro(cid) or isSummon(cid) then -- aqui se for pokemon selvagen ou um summon e for do tipo tal seta speed 1000 se nao seta 50
poketype1 = nometabela[getCreatureName(cid)].type -- nometabela e aonde fica a parte aonde diz que tipo o pokemon e
poketype2 = nometabela[getCreatureName(cid)].type2
if poketype1 == "ice" or poketype2 == "ice" or poketype1 == "dragon" or poketype2 == "dragon" then
doChangeSpeed(cid, 1000)
else
doChangeSpeed(cid, 50)
end
end
return true
end
doRegainSpeed(cid)
return true
end
Editado Agosto 23 por nociam






info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino
O jeito seria adicionar uma verificaçao no teleport, e se tiver a storage de mergulho, remove ela e seta as condições normais de speed e outfit. Mas pra isso teria q armazenar o outfit e a speed em variaveis globais, estou errado? Deve ter um jeito mais elegante de fazer isso.